﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AbstractTesting
{
    class Othello
    {
        enum Color
        { 
            Black,
            White
        }

        class Piece
        {
            public Piece(Color InitialColor)
            {
                m_Color = InitialColor;
            }
            Color m_Color;
            public Color Color { get { return m_Color; } }
            public void ToggleColor() { ; }
        }

        class Player
        {
            public Player(Color PlayerColor)
            {
                Color = PlayerColor;
            }
            public Color Color;
        }

        class OthelloBoard
        {
            Piece[,] boardArray;
            public OthelloBoard(int Rows, int Columns)
            {
                boardArray = new Piece[Rows, Columns];
            }

            public bool PlacePiece(Color color, int rowIndex, int columnIndex)
            { 
                // Place piece at location.
                // check adjacent squares for piece of opposite color.
                // if found, check next square in same direction is opposite color of that square.
                // if so, the piece adjacent to the placed piece is toggled.

                return true;
            }
        }

        class OthelloGame
        {
            OthelloBoard Board;
            Player[] Players = new Player[2];
            Player Player1;
            Player Player2;
            Player CurrentPlayerIndex;
        }
    }
}
